100 REM  GRID 
110 REM  BY C. REGENA 
115 REM  VERSIONE ITALIANA PAPERSOFT 
120 CALL CLEAR
130 PRINT TAB(8);"***********"
140 PRINT TAB(8);"*";TAB(18);"*"
150 PRINT TAB(8);"* G R I D *"
160 PRINT TAB(8);"*";TAB(18);"*"
170 PRINT TAB(8);"***********"
180 PRINT : : : :"TROVA IL PUNTO DISPERSO"
190 PRINT "SULLA MAPPA."
200 PRINT :"USA E,S,D,X PER MUOVERE"
210 PRINT "IL TUO PUNTO, E PER TENTARE"
220 PRINT "PREMI <ENTER>."
230 CALL CHAR(96,"0000001F1010101")
240 CALL CHAR(97,"000000FF")
250 CALL CHAR(98,"000000FF1010101")
260 CALL CHAR(99,"000000F01010101")
270 CALL CHAR(100,"101010101010101")
280 CALL CHAR(101,"1010101F1010101")
290 CALL CHAR(102,"101010FF1010101")
300 CALL CHAR(103,"101010F01010101")
310 CALL CHAR(104,"1010101F")
320 CALL CHAR(105,"101010FF")
330 CALL CHAR(106,"101010F")
340 CALL COLOR(9,5,1)
350 CALL COLOR(10,5,1)
360 A$="`ababababababababac"
370 B$="d d d d d d d d d d"
380 C$="eafafafafafafafafag"
390 D$="haiaiaiaiaiaiaiaiaj"
400 CALL CHAR(128,"3C7EFFFFFFFF7E3C")
410 CALL COLOR(13,7,1)
420 CALL CHAR(113,"0810207F201008")
430 CALL CHAR(114,"103854921010101")
440 CALL CHAR(115,"080402FF020408")
450 CALL CHAR(116,"101010109254381")
460 CALL CHAR(120,"3C7EFFFFFFFF7E3C")
470 CALL COLOR(12,12,1)
480 PRINT : :"PREMI UN TASTO PER PARTIRE.";
490 CALL KEY(0,K,S)
500 IF S<1 THEN 490
510 CALL CLEAR
520 CALL SCREEN(8)
530 PRINT TAB(6);A$
540 FOR I=1 TO 7
550 PRINT TAB(6);B$:TAB(6);C$
560 NEXT I
570 PRINT TAB(6);B$;TAB(6);D$
580 C=48
590 PRINT TAB(6);"0 1 2 3 4 5 6 7 8 9"
600 FOR I=22 TO 6 STEP-2
610 CALL HCHAR(I,7,C)
620 C=C+1
630 NEXT I
640 PRINT : :TAB(10);"PUNTI:"
650 RANDOMIZE
660 AX=INT(RND*10)
670 AY=INT(RND*9)
680 SC=0
690 G=104
700 BX=0
710 BY=0
720 CALL GCHAR(19,8,G)
730 I=19-BY*2
740 J=8+BX*2
750 CALL HCHAR(I,J,120)
760 CALL KEY(0,K,S)
770 IF K=13 THEN 1080
780 IF K<>69 THEN 840
790 DI=-1
800 DJ=0
810 IF BY+1<9 THEN 1010
820 DI=0
830 GOTO 1010
840 IF K<>68 THEN 900
850 DI=0
860 DJ=1
870 IF BX+1<10 THEN 1010
880 DJ=0
890 GOTO 1010
900 IF K<>83 THEN 960
910 DI=0
920 DJ=-1
930 IF BX-1>-1 THEN 1010
940 DJ=0
950 GOTO 1010
960 IF K<>88 THEN 760
970 DI=1
980 DJ=0
990 IF BY-1>-1 THEN 1010
1000 DI=0
1010 CALL HCHAR(I,J,G)
1020 I=I+2*DI
1030 J=J+2*DJ
1040 CALL GCHAR(I,J,G)
1050 BX=BX+DJ
1060 BY=BY-DI
1070 GOTO 750
1080 CALL SOUND(100,-1,2)
1090 IF(AX=BX)+(AY=BY)=-2 THEN 1230
1100 IF AX<=BX THEN 1130
1110 CALL HCHAR(19-BY*2,8+BX*2,115)
1120 GOTO 1200
1130 IF AX>=BX THEN 1160
1140 CALL HCHAR(19-BY*2,8+BX*2,113)
1150 GOTO 1200
1160 IF AY>=BY THEN 1190
1170 CALL HCHAR(19-BY*2,8+BX*2,116)
1180 GOTO 1200
1190 CALL HCHAR(19-BY*2,8+BX*2,114)
1200 GOSUB 1340
1210 CALL SOUND(100,1497,2)
1220 GOTO 700
1230 CALL HCHAR(19-AY*2,8+AX*2,128)
1240 GOSUB 1340
1250 FOR I=1 TO 15
1260 CALL SOUND(-100,INT(200*RND+200),2)
1270 CALL COLOR(13,12,1)
1280 CALL COLOR(13,7,1)
1290 NEXT I
1300 PRINT :"CI RIPROVI? (S/N)";
1310 CALL KEY(0,K,S)
1320 IF K=83 THEN 510
1330 IF K=78 THEN 1400 ELSE 1310
1340 SC=SC+1
1350 S$=STR$(SC)
1360 FOR I=1 TO LEN(S$)
1370 CALL HCHAR(23,18+I,ASC(SEG$(S$,I,1)))
1380 NEXT I
1390 RETURN
1400 CALL CLEAR
1410 END
